home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
801_900
/
DISK0875
/
DISK0875.ZIP
/
CLKKYB.C
< prev
next >
Wrap
Text File
|
1987-01-03
|
4KB
|
151 lines
/********************************************************** CLKKYB.C
* NAME: CLKKYB
*
* FUNCTION: Inputs character from keyboard, and deals with
* options selected.
*
* EXAMPLE: CLKKYB();
*
* INPUTS: none
*
* OUTPUT: ch = character returned from keyboard. (=0 if none)
*
**************************************************************
* 11/22/86 -RBM- original implementation
**************************************************************/
#define XTRNALGLOBALS 1 /* globals externally defined */
#include "E:CLKGBL.H" /* setup global storage */
/**************************************************************
* BEGIN ROUTINE
**************************************************************/
int CLKKYB()
{
int ch; /* character input from keyboard */
ch = kbhit();
if (ch != 0) ch=options(); /* see if character is an option */
return(ch);
} /***** end of routine ******/
/****************************************************************
* OPTIONS - checks to see if character is one of many that can
* alter the setup of the clock display
*****************************************************************/
int options()
{
int chr; /* character actually input */
int pozzible; /* possibly useful character */
int repaint; /* requests re-painting of clock*/
chr = getch(); /* get character from kybd */
pozzible = 1; /* show evaluating character */
repaint = 0;
while (pozzible != 0)
{
if ((chr == (int)'h') ||
(chr == (int)'H') ||
(chr == (int)'?') )
{/*-------------- help screen ------------------*/
repaint = 1; /* show have to re-paint screen */
sreg.ax=0x0003; /* clear screen */
sreg.bx = sreg.cx = sreg.dx = 0;
csysint(VIDEO, &sreg, &rreg);
printf ("======= CLOCK HELP SCREEN ========\n");
printf ("\n");
printf ("H or ? displays this screen\n");
printf ("0 - 9 sets size (1=10%%, 2=20%%, 0=100%%)\n");
printf ("C = center clock in display\n");
printf ("R = move clock to right side\n");
printf ("L = move clock to left side\n");
printf ("T = move clock to top half\n");
printf ("B = move clock to bottom half\n");
printf ("D = toggle digital clock on/off\n");
printf ("<spacebar> to continue with no changes\n");
printf ("\n");
printf ("----- current values ------\n");
printf ("row=%3d, col=%3d, size=%3d%%, digclock=%1d\n",
cntrow, cntcol, clocksize, digclock);
chr = getch(); /* get next character from kybd */
}
else if ((chr >= (int)'0') && (chr <= (int)'9'))
{/*----------- adjust clock size --------------------*/
if (chr == (int)'0') clocksize = 100;
else clocksize = (chr-(int)'0')*10;
chr = (int)'H';
}
else if ((chr == (int)'c') ||
(chr == (int)'C') )
{/*----------- center clock in display --------------*/
cntcol = CENTC;
cntrow = CENTR;
chr = (int)'H';
}
else if ((chr == (int)'r') ||
(chr == (int)'R') )
{/*----------- move clock to right hand side ---------*/
cntcol = CENTC + 80;
chr = (int)'H';
}
else if ((chr == (int)'l') ||
(chr == (int)'L') )
{/*----------- move clock to left hand side ----------*/
cntcol = CENTC - 80;
chr = (int)'H';
}
else if ((chr == (int)'t') ||
(chr == (int)'T') )
{/*----------- move clock to top half ----------------*/
cntrow = CENTR - 50;
chr = (int)'H';
}
else if ((chr == (int)'b') ||
(chr == (int)'B') )
{/*----------- move clock to bottom half -------------*/
cntrow = CENTR + 50;
chr = (int)'H';
}
else if ((chr == (int)'d') ||
(chr == (int)'D') )
{/*----------- toggle digital clock display ----*/
if (digclock == 0) digclock=1;
else digclock=0;
chr = 0;
pozzible = 0;
}
else if (chr == (int)' ')
{/*------------ spacebar out -------------------*/
chr = 0;
pozzible = 0;
}
else
{/*------- input key not supported -------------*/
chr = chr; /* pass character thru */
pozzible = 0;
};
};
if (repaint != 0)
{ /*------- re-paint clock -----------------------*/
clksiz(); /* determine size, colors, etc */
clkizn(); /* initialization */
clkclr(); /* clear screen */
clkfac(); /* paint clock's face */
clktim(); /* get time */
};
return(chr);
} /*------------ end subroutine --------------------------------*/